package com.edmond.conteroller;

import com.edmond.entity.Menu;
import com.edmond.entity.MenuVO;
import com.edmond.entity.Type;
import com.edmond.repository.MenuRepository;
import com.edmond.repository.TypeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import java.awt.*;
import java.util.List;

@RestController
@RequestMapping("/menu")
public class MenuHandler {
    //    获取当前配置文件中 的 端口号
    @Value("${server.port}")
    private String port;

    @Autowired
    private MenuRepository menuRepository;

    @Autowired
    private TypeRepository typeRepository;

    @GetMapping("/index")
    public String index() {
        return "当前服务端口为：" + this.port;
    }

    @GetMapping("/findAll")
    public MenuVO findAll(@RequestParam("index") Integer index, @RequestParam("pageSize") Integer pageSize) {
        return new MenuVO(0, "success", menuRepository.count(), menuRepository.findAll(index, pageSize));
    }

    //  根据 id 删除指定的内容
    @DeleteMapping("/deleteById/{id}")
    public void deleteById(@PathVariable("id") Integer id) {
        menuRepository.deleteById(id);
    }

    //  查询所有种类信息
    @GetMapping("/findTypes")
    public List<Type> findTypes() {
        return typeRepository.findAll();
    }

    //  保存对象信息 (json字符串形式 -- 接收对象类型的参数)
    @PostMapping("/save")
    public void save(@RequestBody Menu menu){
        menuRepository.save(menu);
    }

    //  根据id 查询对应的菜品信息
    @GetMapping("/findById/{id}")
    public Menu findById(@PathVariable("id") long id){
        return menuRepository.findById(id);
    }

    //  更新 菜品详细信息
    @PutMapping("/update")
    public void update(@RequestBody Menu menu){
        menuRepository.update(menu);
    }

}
